$030BF4 - Routine called when trying to use item outside of battle
	-When it's about to be used, return boolean on if this item can be used in this situation
	-EG Potions can't be used on full health PCs
	-Get given item's effect byte and branch depending on its value
	$00 (Tent): If current map != 0x0 (Overworld), return 0 and exit
		-Else, load VarMem +$10; if greater than 0x2 return 0 and exit
		-Else return 0x1
	$01 (Max HP Up):
		-If target is alive and MHP < 999, success
		-If item is multitarget (huh!), only one teammate need pass
	$02 (Max MP Up):
		-If target is alive and mMP < 999, success
		-Or any PC, if it's multitarget
	$03 - $07 (Stats Up):
		-If target, or any PC if it's multitarget, is alive and stat < 99, pass
	$08 - $0C:
		-Won't get here, but always return 0x0
	$0D (HP Restore):
		-If target PC is dead/stone, or HP is full, return 0x0; else return 0x1
	$0E (MP Restore):
		-Same as above, but for MP
	$0F (Elixir/Megalixir):
		-Check Targeting byte; if single-target check that target isn't Stone/Dead and has non-max HP/MP
		-If multitarget, check if any PCs are alive w/ non-max HP/MP
	$11 (Remedy):
		-If target is Poisoned, return 0x1; else return 0x0
	$12 (Use Power'th spell):
		-Load Spell ID
		-Call $302BC (check if spell is usable in the field), and pass on its return value

$03110C - called when using an item in the field - handles effects
	$31214 - MP Restore

$0319C8 - Huge routine for field Item menu
	-See ItemMenu_main.asm
	-Called every frame; handles everything from scrolling to item use...

	$03210C: Run when selecting an armor/weapon?
		-Loads BattleMem+$614
			-0x00: nothing happened
			-0x03: text printing
			-0x06: Item is selected for action
	$3213C:
		-r0 = [BattleMem+$56F0]
		-r1 = BattleMem+$620
		-r2 = 0x14
		-Branch to $02CD18 (stores r1 to r0+$04, r2*1024 to r0+$0A)
		-r0 = [BattleMem+$56F0]; r1/r2/r3 = 0x0
		-Branch to $2C7A8 (writes 0x00 to BattleMem+ $620-$5620 )
	$32160:
		-sp = pointer to sp+$24
		-sp+$04 = Window top-left corner: X offset
		-sp+$08 = Window top-left corner: Y-offset
		-sp+$24 = 0x0D1E0000 (some params for the new window)
			-Lowest: Window X-offset
			-Low: Window Y-offset
			-High: Window width
			-Highest: Window height
		-r1 = scratch
		-r2 = Index to window style to use? (what borders go where etc)
		-r3 = scratch
		-Branch to $02BE40
		
		-Display names, sprites of party members, and animate if they can equip
		-Print selected item's name and quantity
		-Now print names of every class, in white if that class can equip
	$32548
		-Set gradient info for all of the windows (manually uses Y-coords)


	$032D90: Check if the A button was newly pressed this frame
	$032E16: When an item is double-selected, start handling
		-Check if item is IID = 0 or type = 0; if so exit
	$032E4C: After checking that item is real, check if it's a consumable or gear
		$032E50: If consumable, do checks (can item be used, etc)
		$032EF0: If gear, set BattleMem+$5700 to 0x4, +$5704 to 0x0, +$614 to 0x6

	$032F24: When two different inventory positions have been selected, swap the items at those locations

	$033372: Using an item; in party screen selecting a PC, check if item can be used on this PC

$039348 - Routine called when Item menu is opened from main menu
	-Draws main item screen?

$07E920 - Routine called when using an item; check if usable
	-NOTE: This could work in or out of battle, but in practice only out-of-battle routines call it
	-Gets item's effect byte, uses that do determine what to do
	-r2 = in battle or not (in practice, only ever 1)
	-So in the end, the system is this:
	-For items which aren't set to cast a spell:
		-If item can be used anywhere, return 0x1
		-If item is battle-only, return 0x0
		-If item is field-only:
			-Return 0x3 if it has the Tent or Phoenix Down effect
			-Otherwise, return 0x1
	-For items which are set to cast a spell:
		-If spell could normally be cast outside of battle (Cure/Heal/Poisona etc) return 0x1
		-If not, return 0x2 if the spell is Exit/Teleport; return 0x0 otherwise